from tkinter import *

root = Tk()
root.title("Checkbutton属性示例")

# 创建一个StringVar变量用于存储复选框状态
var1 = StringVar()

# 1. 基本的复选框，展示背景色和前景色
chk1 = Checkbutton(root, text="基本复选框",
                  background="lightblue",    # 背景颜色
                  foreground="red",         # 文字颜色
                  variable=var1)            # 绑定变量
chk1.pack(pady=10)

# 2. 带有图片的复选框
try:
    img = PhotoImage(file="背景.png")
    chk2 = Checkbutton(root, text="图片复选框",
                      image=img,            # 设置图片
                      compound="left")      # 图片在文字左边
    chk2.image = img                        # 保持图片引用
    chk2.pack(pady=10)
except:
    print("图片加载失败，跳过图片复选框示例")

# 3. 设置高亮颜色（选中时的颜色）
chk3 = Checkbutton(root, text="高亮效果",
                  highlightcolor="yellow",  # 高亮颜色
                  highlightthickness=2)     # 高亮边框宽度
chk3.pack(pady=10)

# 4. 多行文本示例
chk4 = Checkbutton(root, text="第一行\n第二行",  # 使用\n换行
                  justify="left")           # 文本左对齐
chk4.pack(pady=10)

# 5. 设置状态（禁用）
chk5 = Checkbutton(root, text="禁用状态",
                  state="disabled")         # 设置为禁用状态
chk5.pack(pady=10)

# 6. 设置宽度和高度
chk6 = Checkbutton(root, text="固定大小",
                  width=20,                 # 设置宽度
                  height=2)                 # 设置高度（行数）
chk6.pack(pady=10)

# 7. 带命令的复选框
def on_check():
    print("复选框状态改变")

chk7 = Checkbutton(root, text="带命令的复选框",
                  command=on_check)         # 设置回调函数
chk7.pack(pady=10)

root.mainloop()